<?php
namespace Core\annotations;

return [
    //类注解
    Bean::class => function ($instance, $container, $self) {
        $vars = get_object_vars($self);
        // var_dump($vars);
        /*
        array(2) {
            ["name"]=>
                string(0) "abc"
        }
        array(2) {
            ["name"]=>
                string(3) "abc"
        }
        在容器中
            ["abc"]=>object
        所以在存入容器时，vars数组中最后的元素覆盖前面相同的
        使用自定义容器中，类名key就无效了，代码需改进
         */
        $beanName = "";
        if (isset($vars["name"]) && $vars["name"] != "") {
            $beanName = $vars["name"];
        } else {
            $arrs = explode("\\", get_class($instance));
            $beanName = end($arrs);
        }

        $container->set($beanName, $instance);
    },

    //属性注解
    Value::class => function () {

    },

];
